Når vi jobber i RMarkdown slik som i Quarto vil vi ikke alltid ha alle feilmeldingene med i det endelige dokumentet. I denne posten går jeg gjennom hvordan man kan spesifisere hvilke typer meldinger man vil ha med i den endelige fila. Jeg viser både hvordan man kan bestemme dette for hver chunk og hvordan man kan spesifisere det for hele dokumentet.
Når vi jobber i RMarkdown kombinerer vi som regel ren tekst, markdown og chunker med R-kode. Dette er et eksempel på en nettside generert med RMarkdown.1 Et irritasjonsmoment i RMarkdown er at vi noen ganger får for mange feilmeldinger eller informasjonsmeldinger som legger seg inn i det genererte dokumentet. Når vi bare jobber med R er det fint med varsler, men når vi lager en pdf eller hmtl-fil er det upraktisk. Selv om vi kanskje spesifiserer noen typer informasjon vi ikke ønsker i headerne på chunkene hender det vi likevel ikke blir kvitt alle typer informasjonsmeldinger i dokumentet vårt. I denne posten viser jeg hvordan man fjerner slike meldinger for alle chunkene i et dokument.
Vi begynner som regel r-kode med å spesifisere ulike typer pakker for vi vil ha med. Under laster inn tidyverse
. Når jeg ikke sier noe spesifikt om hvilken informasjon jeg ønsker i chunken får vi både koden gjentatt i dokumentet og vi får en fin melding om hvilke tidyverse
-pakker som er lastet inn og hvilke konflikter som har oppstått med andre pakker. Jeg lager en warning
for å vise at disse også blir inkludert i outputen.
── Attaching core tidyverse packages ──── tidyverse 2.0.0 ──
✔ dplyr 1.1.3 ✔ readr 2.1.4
✔ forcats 1.0.0 ✔ stringr 1.5.0
✔ ggplot2 3.4.3 ✔ tibble 3.2.1
✔ lubridate 1.9.3 ✔ tidyr 1.3.0
✔ purrr 1.0.2
── Conflicts ────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
warning("Denne advarselen synes")
Warning: Denne advarselen synes
Vi kan spesifisere i headeren på chunken hvilken informasjon vi vil se. I chunken under har jeg sagt at jeg ikke vil se warning
: {r Ingen advarsler, warning=FALSE}
.
Meldinger er fortsatt påskrudd
Hvis vi imidlertid vil ta vekk alle ulike typer varsler fra hele dokumentet kan vi spesifisere det i en chunk. Det må spesifiseres i starten av dokumentet for å gjelder hele veien. NB: Quarto
-brukere bør se nederst for spesifikk Quarto
-kode. Hvis vi ikke vil at chunken skal synes selv må vi spesifisere det i headeren på setup-chunken. Her har jeg skrudd av warning
, message
og comment
, men jeg har beholdt echo = TRUE
slik at innholdet i chunken fortsatt skal vises. Hvis man setter det som echo = FALSE
vil ikke r-koden i hver enkelt chunk vises.
knitr::opts_chunk$set(
echo = TRUE,
warning = FALSE,
message = FALSE,
comment = FALSE
)
Vi ser at outputen fra library(data.table)
ikke blir vist. Her ville det til vanlig være forklart hvilke funksjoner fra tidyverse
som data.table
erstatter. Bare r-koden selv i chunken er med på grunn av echo = TRUE
over.
# Ikke noen beskjeder fra library:
library(data.table)
warning("Denne advarselen synes ikke")
message("Meldinger er skrudd av")
Quarto
Siden Quarto
er det nye store innen markdown
og R
er det greit å ta med at Quarto
har en mer praktisk måte å løse problemet på. I Quarto
kan du bestemme hvor mye output du vil ha i selve yaml
-teksten i starten av dokumentet. Da slipper man å spesifisere noe mer i dokumentet enn i de første linjene. Eksempelet under er inspirert av denne blogposten hos Jumping Rivers:
title: "Introduksjon"
format: pdf
execute:
echo: false
warning: false
message: false
comment: false
Distill som driver siden har imidlertid andre standarder og skrur av warning
og message
som standard. For å lage denne teksten måtte jeg først skru det på i den første chunken.↩︎
For attribution, please cite this work as
Solheim (2023, Aug. 29). Solheim: Fjerne advarsler og meldinger fra en RMarkdownfil. Retrieved from https://www.oyvindsolheim.com/code/chunk options/
BibTeX citation
@misc{solheim2023fjerne, author = {Solheim, Øyvind Bugge}, title = {Solheim: Fjerne advarsler og meldinger fra en RMarkdownfil}, url = {https://www.oyvindsolheim.com/code/chunk options/}, year = {2023} }